package com.yeyks.common.appcommon.dto.order;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yeyks.common.appcommon.json.JsonPersonInfo;
import com.yeyks.common.result.OrderBillDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author Administrator
 */
@ApiModel(description = "订单信息DTO")
@Data
public class AppOrderInfoDTO implements Serializable {


    private static final long serialVersionUID = -2477251951422684147L;

    @ApiModelProperty("订单id")
    private Integer id;

    @ApiModelProperty("创建时间")
    private Date gmtCreate;

    @ApiModelProperty("修改时间")
    private Date gmtModified;

    @ApiModelProperty("订单号")
    private String orderNo;

    @ApiModelProperty(value = "对接方订单id")
    private String sourceOrderId;

    @ApiModelProperty(value = "source_hotel_id")
    private String sourceHotelId;

    private String sourceRoomId;

    @ApiModelProperty(value = "yyks:平台   cn:龙腾 ")
    private String sourceType;

    @ApiModelProperty(value = "资源方订单金额(分)")
    private Integer sourceAmount;

    @ApiModelProperty(value = "订单可取消最后时间")
    private Date lastCancelTime;

    @ApiModelProperty("用户Id")
    private Integer userId;

    @ApiModelProperty("房间Id")
    private Integer roomId;

    @ApiModelProperty("酒店Id")
    private Integer hotelId;

    @ApiModelProperty("酒店快照名称")
    private String snapshotHotelName;

    @ApiModelProperty("房间快照名称")
    private String snapshotRoomName;

    @ApiModelProperty("【实付款】")
    private Integer snapshotTotalFee;

    @ApiModelProperty("退款快照")
    private Integer snapshotRefundFee;

    @ApiModelProperty("酒店房间【现价,平台优惠价格】")
    private Integer snapshotRoomPrice;

    @ApiModelProperty("【成交价】")
    private Integer dealPrice;

    @ApiModelProperty("订单状态,状态，1待支付，2待入住，3已完成，4支付失败，5待退款，6已退款，7入住中，8已取消，9已评论，10 待确认，0已删除")
    private Integer status;

    @ApiModelProperty("酒店房间【原价】")
    private Integer price;

    @ApiModelProperty("【优惠券价格】")
    private Integer couponPrice;

    @ApiModelProperty("入住时间")
    private Date checkIn;

    @ApiModelProperty("离店时间")
    private Date checkOut;

    @ApiModelProperty("客人数量")
    private Integer numGuest;

    @ApiModelProperty("联系人,包含入住人的相关信息， json数据")
    private String vitalPersonInfo;

    @ApiModelProperty("联系人对象信息")
    private JsonPersonInfo jsonPersonInfo;

    @ApiModelProperty("支付方式，0微信，1支付宝，4小程序，5公众号, 6钱包")
    private Integer paymentMethod;

    @ApiModelProperty("支付相关信息")
    private String paymentInfo;

    @ApiModelProperty("用户评分")
    private Integer score;

    @ApiModelProperty("扩展信息")
    private String extraInfo;

    @ApiModelProperty("总天数")
    private Integer totalDays;

    @ApiModelProperty("酒店电话")
    private String hotelPhone;

    @ApiModelProperty("房间链接地址")
    private List<String> roomUrls;

    /**
     * 是否评价过,true代表已经评价过
     */
    @ApiModelProperty("是否评价过,true代表已经评价过")
    private Boolean evaluate;

    /**
     * 房间扩展信息
     */
    @ApiModelProperty("房间扩展信息")
    private String roomExtraInfo;

    /**
     * 佣金
     */
    @ApiModelProperty("佣金")
    private Integer hotelParentTax;

    @ApiModelProperty("是否VIP<臻选酒店>订单, 0 --> C2B订单  1--> 臻选订单")
    private Integer vipFlag;

    @ApiModelProperty("接单消息组装")
    private String contextMessage;

    /**
     * 订单详情
     */
    @ApiModelProperty("价格区间详情")
    private List<OrderBillDetail> orderBillDetailList;

}
